import request from '@/utils/request'

// 登录
export function login(data) {
  return request({
    url: '/system/api/user/admin/login',
    method: 'post',
    data
  })
}

// 查询用户信息
export function getInfo(token) {
  return request({
    url: '/system/user/info',
    method: 'get',
    params: { token }
  })
}

// 退出
export function logout() {
  return request({
    url: '/system/user/logout',
    method: 'delete'
  })
}

// 用户管理-条件分页查询
export function getList(query, current = 1, size = 20) {
  return request({
    url: `/system/user/search`,
    method: 'post',
    data: { ...query, current, size }
  })
}

// 新增用户
export function add(data) {
  return request({
    url: '/system/user',
    method: 'post',
    data: data
  })
}

// 根据ID获取用户详情
export function getById(id) {
  return request({
    url: `/system/user/${id}`,
    method: 'get'
  })
}

// 编辑
export function update(data) {
  return request({
    url: '/system/user',
    method: 'put',
    data: data
  })
}

// 根据ID删除用户
export function deleteById(id) {
  return request({
    url: `/system/user/${id}`,
    method: 'delete'
  })
}

// 重置用户密码
export function updatePwd(data) {
  return request({
    url: '/system/user/update/password',
    method: 'put',
    data: data
  })
}

// 根据用户ID查询所拥有的角色
export function getRoleByUserId(userId) {
  return request({
    url: `/system/user/${userId}/role/ids`,
    method: 'get'
  })
}

// 给用户分配角色
export function saveUserRole(userId, roleIds) {
  return request({
    url: `/system/user/${userId}/role/save`,
    method: 'post',
    data: roleIds
  })
}

// 根据用户ID-查询当前用户所拥有的菜单和按钮权限
export function getUserMenuAndButton(userId) {
  return request({
    url: `/system/menu/user/${userId}`,
    method: 'get'
  })
}

// 更新用户状态（ 禁言、锁定、恢复正常 ）
export function updateUserStatus(userId, status) {
  return request({
    url: `/system/user/update/user/status/${userId}/${status}`,
    method: 'get'
  })
}

// 系统监护-一键清理阿里云OSS不被引用的图片
export function clearRubbishPicture() {
  return request({
    url: `/sms/picture`,
    method: 'delete'
  })
}
